using System.Collections.Generic;
using System.Threading.Tasks;
using CPlatePrintSys.Domain.Models;

namespace CPlatePrintSys.Infrastructure.Repositories
{
    public interface IGlobalConfigRepository : IRepository<GlobalConfig>
    {
        /// <summary>
        /// 根据配置键获取配置值
        /// </summary>
        Task<GlobalConfig> GetByKeyAsync(string configKey);

        /// <summary>
        /// 根据配置键获取配置值字符串
        /// </summary>
        Task<string> GetValueByKeyAsync(string configKey);

        /// <summary>
        /// 更新配置值
        /// </summary>
        Task UpdateValueAsync(string configKey, string configValue, string updatedBy);

        /// <summary>
        /// 检查配置键是否存在
        /// </summary>
        Task<bool> ExistsAsync(string configKey);

        /// <summary>
        /// 获取所有配置键
        /// </summary>
        Task<List<string>> GetAllKeysAsync();
    }
} 